package com.hushan.elevator.dao;

import com.hushan.elevator.model.RiskInfo;
import jakarta.transaction.Transactional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @Author: zzy
 * @Date: 2024/10/23 0:03
 * @Title:
 * @Version:
 * @Package: com.hushan.elevator.dao
 */
@Repository
public interface RiskInfoRepository extends JpaRepository<RiskInfo, Integer> {


    @Modifying
    @Transactional
    @Query(value = "UPDATE risk_info set is_deleted = 1 where risk_id = :id",nativeQuery = true)
    void deleteById(int id);
    // 根据序列号查询风险信息
    RiskInfo findBySerialNumber(String serialNumber);


    // 根据风险标题查询风险信息
    List<RiskInfo> findByRiskTitle(String riskTitle);

    // 根据风险等级查询风险信息
    List<RiskInfo> findByRiskLevel(Integer riskLevel);

    // 根据风险类型查询风险信息
    List<RiskInfo> findByRiskType(Integer riskType);

    // 根据是否有照片查询风险信息
    List<RiskInfo> findByHasPhoto(Integer hasPhoto);

    // 根据创建时间范围查询风险信息
    List<RiskInfo> findByCreatedTimeBetween(LocalDateTime start, LocalDateTime end);

    // 根据更新时间范围查询风险信息
    List<RiskInfo> findByUpdatedTimeBetween(LocalDateTime start, LocalDateTime end);

    // 根据创建者查询风险信息
    List<RiskInfo> findByCreatedBy(Integer createdBy);

    // 根据是否删除查询风险信息
    List<RiskInfo> findByIsDeleted(Boolean isDeleted);
}